<body>
<p><a href="rdar://problem/6447115">rdar://problem/6447115</a> Test that a method for logging out of a site that is used by SAP works.</p>
<p>If an authentication dialog appears, please cancel it.</p>
<span>Login: </span><span id="login">FAIL - Test not run</span><br>
<span>Async request sent before logout: </span><span id="async">FAIL - Test not run</span><br>
<span>Logout: </span><span id="logout">FAIL - Test not run</span>
<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}

function login()
{
    var xhr = new XMLHttpRequest;
    // "?login" is only here for ease of debugging; it doesn't affect behavior.
    xhr.open("GET", "resources/logout/resource.php?login", false, "user", "pass");
    xhr.send("");
}

function logout()
{
    var xhr = new XMLHttpRequest;
    // logout.html doesn't even exist - we don't need to send this request to server.
    xhr.open("GET", "resources/logout/subdirectory/logout.html", true, "logout", "logout");
    xhr.send("");
    xhr.abort();
}

function isAuthenticated()
{
    var xhr = new XMLHttpRequest;
    // "?isAuthenticated" is only here for ease of debugging; it doesn't affect behavior.
    xhr.open("GET", "resources/logout/resource.php?isAuthenticated", false);
    xhr.send("");
    return xhr.status == 200;
}

login();
document.getElementById("login").innerHTML = isAuthenticated() ? "PASS" : "FAIL";

// Test that a request sent before logout actually has credentials.
var r = new XMLHttpRequest;
r.open("GET", "resources/logout/resource.php?isAuthenticated2", true);
r.onload = function() {
    document.getElementById("async").innerHTML = r.status == 200 ? "PASS" : "FAIL";

    if (window.testRunner)
        testRunner.notifyDone();
}
r.send("");

logout();
document.getElementById("logout").innerHTML = isAuthenticated() ? "FAIL" : "PASS";
</script>
</body>
